/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufba.dcc.service;

import br.ufba.dcc.dao.UsuarioDAO;
import br.ufba.dcc.model.Usuario;
import java.util.List;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.ejb.Stateless;
import javax.jws.WebParam.Mode;
import javax.jws.WebResult;

/**
 *
 * @author chronos
 */
@WebService(serviceName = "UsuarioServiceDAO")
@Stateless()
public class UsuarioServiceDAO {

    /**
     * This is a sample web service operation
     *
     * @return lista de usuarios
     */
    @WebMethod(operationName = "listuser")
    @WebResult(name = "usuario")
    public List<Usuario> listUser() {

        UsuarioDAO dao = new UsuarioDAO();
        List<Usuario> list = dao.listarUsuarios();

        return list;
    }

    @WebMethod(operationName = "addUsuario")
    @WebResult(name = "usuario")
    public String addUsuario(@WebParam(name = "usuario", mode = Mode.IN)  br.ufba.dcc.model.Usuario usuario) {

        UsuarioDAO dao = new UsuarioDAO();

        dao.cadastrarUsuario(usuario);
        return usuario.getLogin();
    }
    
    
    
    @WebMethod(operationName = "AddUser")
    public String addUser(@WebParam(name = "login") String logintxt ,@WebParam(name = "name") String nametxt, @WebParam(name = "senha") String senhatxt ) {
        
        	UsuarioDAO dao = new UsuarioDAO();
                Usuario usuario = new Usuario();
                usuario.setLogin(logintxt);
                usuario.setNome(nametxt);
                usuario.setSenha(senhatxt);
                
		dao.cadastrarUsuario(usuario);
        
        return "charles pergunte sobre esse retorno.";
    }

    /**
     * Operação de Web service
     */
    @WebMethod(operationName = "autenticarUsuario")
    public Boolean autenticarUsuario(@WebParam(name = "usuario") Usuario usuario) {

        UsuarioDAO dao = new UsuarioDAO();
        
        return dao.autenticarUsuario(usuario);   
    }

    /**
     * Operação de Web service
     */
    @WebMethod(operationName = "atualizarSenha")
    public Usuario atualizarSenha(@WebParam(name = "usuario") Usuario usuario) {
        //TODO write your implementation code here:

        UsuarioDAO dao = new UsuarioDAO();

        return dao.atualizarUsuario(usuario);
    }


    
    
    
    
}
